package com.yun.service.hello;

import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.*;

import java.util.Map;

/**
 * @author: Mr.Liu
 * @version: 1.0.0
 * @description:@FeignCient的name：调⽤的服务名称，和服务提供者yml⽂件中spring.application.name保持⼀致
 * path: 定义当前FeignClient的统一前缀
 * @create: 2022-07-19 16:18
 * @modify: 2022-07-19 16:18
 **/
@FeignClient(name= "eureka-support",path = "/provider/service")
public interface IHelloService {

    /**
     * 从请求路径获取值，需要使用@PathVariable注解
     */
    @GetMapping(value = "/helloWorld/{msg}")
    public String helloWorld(@PathVariable(value = "msg") String msg);
    /**
     * 从请求参数中获取值，需要使用@RequestParam注解，可以不用在注解中指定值
     * 注意点：Feign方法中的参数名必须跟对应的服务端方法参数名一致
     */
    @GetMapping("/findProduct")
    public String findProduct(@RequestParam("name") String name1, String code);

    /**
     *  对象作为参数时需要加上@SpringQueryMap注解
     */
    //@GetMapping("/product/findProduct2")
    //Object findProduct2(@SpringQueryMap Object object);

    /**
     * 使用Map作为参数，必须加上@RequestParam注解或者@SpringQueryMap注解
     */
    @GetMapping("/findProduct3")
    public String findProduct3(@RequestParam Map<String, Object> map);

    @PostMapping(value = "/insertUser")
    public String insertUser(@RequestBody String str);

    /**
     * 对象参数需要加上@RequestBody注解
     */
    @PostMapping("/product/findProduct4")
    Object findProduct4(@RequestBody Object object);
}
